

#作业  ：判断字符串是否是回文
#提取出里面的数字和字母，不区分大小写，从左至右和从右到左看起来一样


#定义字符串
num1 = "Abc()&&&^)__++Cba"

#定义一个函数，使用for循环遍历，最后一个字符与第一个字符比较
def HuiWeng(num1):

    #定义a 是字符串num1 的长度
    a = len(num1) - 1
    d = 0       #定义一个空的变量

    for i in range(len(num1)):
        b = num1[a-i] #最后一个字符
        c = num1[i]    #第一个字符
        if b != c:  #比较
            print("不是回文")
            break
        else :
         d = d + 1  #记录相同字符的个数
    if d == len(num1): #如果与总长一样就是回文
        print("这个字符串是回文")

#定义一个去杂的函数，将字符串大小写与符号去除
def QvZha(num1):
    import re      #正则表达式
    a = ""          #记录
    for i in num1:  #遍历字符串
            #不区分大小写与字符串num1比较
        if re.match("[\w]",i) and i != "_":
            a = i+a     #将去杂的字符串 重组
    print(a.lower())#打印全部转换为小写的字符串a
    return a.lower()#返回字符串 a


HuiWeng(QvZha(num1))  #将QvZha（）函数返回的字符串传递给HuiWeng()函数



















"""
#统计字符串长度 len()
print(len("ssaawddddddddddaaa"))
#统计子串出现的次数   统计ab 出现的次数   .count()
print("aanjaefnjnfjnjenajk".count("ab"))
#查看字符第一次出现的下标的位置  统计a 字符第一次出现的下标  .index()
#如果没有  a 这个字符  就会抛出异常  ，同时程序也就终止了
print("afawfafw".index("a"))
#查看字符第一次出现的下标的位置2  find()
print("afnbjfn".find("a"))  #这个方法找不到a 的话就会返回  -1   不会终止程序
"""
"""
num1 = input("输入字符串")
aa = ""
for i in num1:
    #如果i
    if i not in  num1:
        aa+=i

    print(i ,"是",num1.count(i))

#大小写转换
print(f"将字符串转换成大写:{'awdad'.upper()}")
print(f"将字符串转换成大写:{'awdad'.lower()}")
#字符串单词开头转换成大写
print(f"将字符串转换成标题形式:{'awdad'.title()}")
"""

"""
#字符串的切割
user_info = input("s=输入你的名字：")
print(f"user_info is是： {user_info}")
print(f"user_info.split('#'):{user_info.split('#')}")
name,age  =user_info.split('#')
print(f"name is切割后： {name},age is {age}")
"""
"""
#字符串的拼接
#拼接可迭代对象  -- 能被for 循环遍历获取的都是可迭代对象
lst = ["aa","bb","cc"]   # 列表  （集合）
result = "*".join(lst)  #列表元素的拼接

result = "".join(lst)  #列表元素的拼接
print(result)


#去除首尾字符  strip     默认去除首尾空白
str2 = input("afwafw")
#可以在这里写上任意字符
if str2.strip() == "root":
    print("ok")
"""

#替huan
#str3 = "xxxxxyyyy".replace('x','7',1)  #参数1 指定元素，参数2 替换为什么 ，参数3 按照索引指定替换
#print(str3)

#填充
#print("欢迎你lllll".center(50,"*"))#*********************欢迎你lllll*********************
##print("欢迎你lllll".rjust(20,"*")) #向字符串左边填充 * 20个字符


#dir() 是查看 abc 属性的函数
"""
print( dir('abc'))


#可变数据类型
#不可变数据类型  --string  int  float
#区别  能不能在同一个内存区域去修改值
str1 = 'abc'
print(id(str1))  #打印str1 的内存地址2443100350192

str1 = "acx"   #重新赋值  在底层是  重新开辟了一片空间  存储  acx
print(id(str1))  #地址值为：244310043716

#列表  也是一样的
lst1 = ["aaa","bbb","ccc","ddd"]
print(id(lst1))
lst1[1] = "wwww"
print(id(lst1))

"""
#布尔类型
#True  --1
#False --0
#可以参与计算
#print("abc".islower()+"ABC".islower())

# 0 ,0.0 ,[] "" ,() ,{} ,False ,None  这些都 假  ，其余都为真

#abcd 四名犯罪嫌疑人，一个是小偷
#a 我不是
#b c是
#c  是d
#d c不对
#其中一个人说了假话，是谁
"""
str1 = "abcd"
for x in str1 :
    if("a" != x) + ("c" == x) + ("d" == x) + ("d" != x) == 3:
        print(x)
"""
#NoneType   --None  表示什么都没有   为假







#循环结构  for   while
#break   -- 退出当前循环
#continue --结束本次循环，开启下一次循环
#for
"""
for i in "abc":
    print(i)
    pass  #占位符  表示啥都不做

#for else 结构
# else for 只有在正常退出的时候才会执行   使用修饰符退出不会执行
for i in "abcc":
    print(i)
else:
    print(i)
"""
"""
#while 循环
while(条件为真):
    
else:
"""
"""
a = 0
while a < 10:
    print(a)
    a += 1
str1 =""
while str1 != "q":
        str1 = input("输入去qqq")
        print(str1)

#字符串也可以比较大小
#   ord() 查看编码
c1 = input("ww")

if 'a' <= c1 <='z':
    print("小写")
    print(ord(c1))

"""


















"""
num1 = input("输入1")

cc = num1[:2]
num3 = ""
dd = ""
num3 = num1[2:]

for i in range(len(num3)-1):
    pp = num3[i]
    a = num3[i+1]
#三元运算如果 a > pp 则 dd = a 不大于 就 = pp 
    dd = a if a>pp else pp
print(dd)
import re
if num1.isdigit():
    print("是整型")
elif ( cc == "0b" and re.match("[01]*",num3)) or (cc == "0o" and re.match("[0-7]*",num3)) or  (cc == "0x" and re.match("([a-f]*\d)*",num3)):
        print("是的")
else:
        print("不是2")

"""
"""
num1 = input("please input an number:")
patter_str = ""
num1_prefix = num1[:2]
if num1_prefix == "0b":
    patter_str = "01"
elif num1_prefix == "0o":
    patter_str = "01234567"
elif num1_prefix == "0x":
    patter_str = "0123456789abcdef"

flag = 0  #标志位
if  num1.isdigit():
    print("是整型")
elif patter_str != "" :
    for i in num1[2:]:
        if i not in patter_str:
             flag = 1
             break
    if flag == 0:
        print("是整型")
    else:
        print("不是整型")
else:
    print("不是整型")



"""


"""
cc = num1[:2]
if cc == "0r" or cc == "0x" or cc == "0b":
    print("我是整数")
elif :
    int(num1)
    if isinstance(num1, int):
          print("我是zs")
    else:

        print("我不是zs")



"""

# if num1


"""
a = 0
b = 0

for i in range(len(num1)):
    if num1[i] == num1[i+1] :
            a+1

"""

"""

if num1 == "111" and num2 == "222" :
    print("对了")
else:
  print("chuola")
  #fffff
num3 = input("输入一个数0")

#写出条件为20 < num3 < 30 or num3 < -100 的python表达式
  # 20 < num3 < 30 or num3 < -100
 #  y = num3


import random
a = random.randint(1.10)
"""
